package com.zany.util.data;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;

public class DataUtils {
	
	/**
	 *  取整
	 * @param data
	 * @return
	 */
	public static Double doubleCeil(Double data) {
		Integer i =  (int)Math.ceil(data); 
		return Double.valueOf(i.toString());
	 }
	 /**
	  *  四舍五入
	  * @param data
	  * @return
	  */
	public static Double doubleFloor(Double data) {
		Integer i =  (int)Math.rint(data); 
		return Double.valueOf(i.toString());
	}
	 
//	public static Double doubleScale(Double data){
//		BigDecimal dataDecimal = new BigDecimal(data);
//		double returnData = dataDecimal.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
//		return returnData;
//	}
	 
	public static Double doubleScale(Double data){
		DecimalFormat df = new DecimalFormat("#.0");
		df.setRoundingMode(RoundingMode.HALF_UP);
		String dateStr = df.format(data);
		return Double.valueOf(dateStr);
	}
	
//	public static Double doubleScale2(Double data){
//		BigDecimal dataDecimal = new BigDecimal(data);
//		double returnData = dataDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
//		return returnData;
//	}
	 
	public static Double doubleScale2(Double data){
		DecimalFormat df = new DecimalFormat("#.00");
		df.setRoundingMode(RoundingMode.HALF_UP);
		String dateStr = df.format(data);
		return Double.valueOf(dateStr);
	 }
     
	public static String sumMoney(String moneyA, String moneyB){
		BigDecimal decimalA = new BigDecimal(moneyA);
		BigDecimal decimalB = new BigDecimal(moneyB);
		return decimalA.add(decimalB).toString();
	}
	
	public static Double multiplyMoney(Double moneyA, Double moneyB, Double moneyC){
		BigDecimal decimalA = new BigDecimal(moneyA.toString());
		BigDecimal decimalB = new BigDecimal(moneyB.toString());
		BigDecimal decimalC = new BigDecimal(moneyC.toString());
		return Double.valueOf(decimalA.multiply(decimalB).multiply(decimalC).toString());
	}
	
	public static Double sumMoney(Double moneyA, Double moneyB){
		BigDecimal decimalA = new BigDecimal(moneyA.toString());
		BigDecimal decimalB = new BigDecimal(moneyB.toString());
		return Double.valueOf(decimalA.add(decimalB).toString());
	}
	 
	public static String subMoney(String moneyA, String moneyB){
		BigDecimal decimalA = new BigDecimal(moneyA);
		BigDecimal decimalB = new BigDecimal(moneyB);
		return decimalA.subtract(decimalB).toString();
	}
	 
//	public static void main(String[] args) {
//		Double a = 43.0;
//		String buf[] = a.toString().split("\\.");
//		if(Double.valueOf(buf[1]).compareTo(a)==0){
//			a = Double.valueOf(buf[1]);
//		}
//		System.out.println();
//	}
	
	public static void main(String[] args) {

        System.out.println(doubleScale2(19.034));
    }
}
